Khóa mắc trong phát triển ứng dụng web là thực thi đồng bộ các thao tác nhập/xuất. Khi một đoạn mã thực hiện yêu cầu đồng bộ, nó buộc luồng chính của trình duyệt phải chờ độ trễ vốn có của mạng, tạo ra tình huống "dừng toàn bộ thế giới".
1. Vấn đề chặn đứng
Các yêu cầu đồng bộ (sử dụng tham số false trong hàm XMLHttpRequest.open) chiếm giữ luồng trình duyệt. Điều này ngăn mọi tương tác của người dùng, hiệu ứng chuyển động và hiển thị cho đến khi máy chủ phản hồi. Với người dùng, thẻ sẽ trông như bị đóng băng.
2. Sự khác biệt về logic
Chuyển sang "vượt qua sự đông cứng" đòi hỏi phải chuyển từ mô hình tuyến tính sang một phong cách bất đồng bộ. Trong lập trình đồng bộ, chương trình tuân theo thứ tự nghiêm ngặt từ trên xuống dưới, còn bất đồng bộ lại dựa vào các trình xử lý sự kiện để nhận biết khi dữ liệu đến, cho phép đoạn mã tiếp tục thực thi ngay lập tức.
3. Yêu cầu về khả năng phản hồi giao diện
Yêu cầu của các dự án hiện đại đòi hỏi xử lý đọc tệp hoặc lấy dữ liệu mà không làm đông cứng giao diện tài liệu. Điều này đảm bảo rằng ngay cả khi đang thực hiện các thao tác từ xa phức tạp, con trỏ vẫn hoạt động và các nút vẫn có thể nhấn được.